home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / misc / tos206up.zoo / tos206up.txt
Text File  |  1993-02-02  |  25KB  |  525 lines

  1.  
  2.  
  3.         TOS 2.06 Installation Instructions for 1040ST (V2.0)
  4.  
  5. Introduction:
  6.  
  7.     This document contains a procedure for installing TOS 2.06 EPROMs into a 
  8.     1040ST revision C motherboard.  A simple circuit consisting of 3 TTL ICs
  9.     wire and patience is all that is required.  The total cost of the upgrade
  10.     will be the cost of the TOS 2.06 EPROMs ($60) plus $1 for the TTL chips.
  11.  
  12.     The OS upgrade should work on other STs as well but this upgrade has only
  13.     been implemented on a revision C motherboard of a 1040ST (~1986 vintage).
  14.     This upgrade requires some careful soldering so don't try it unless you
  15.     have had some PC board soldering experience (don't use a soldering gun!).
  16.  
  17.     I would like to thank all who responded to my questions on notes for their
  18.     help.  Without the help, I would have had a slim chance of getting this
  19.     thing to work.  
  20.  
  21.     I would like to suggest that anyone who wants TOS 2.06 to buy it from
  22.     Codehead Technologies: (213)-386-5735  They send along a nice manual
  23.     and a great utilities disk.
  24.  
  25.  
  26. Background:
  27.  
  28.     Most 520ST and all 1040ST computers were shipped with 6 ROMs that contained
  29.     TOS (The Operating System).  These ROMs are mapped into the address space
  30.     0xFC0000 to 0xFEFFFF.  This is a 192K byte space.  Each ROM holds 32K 
  31.     bytes.  TOS 2.06 is larger than 192K for extra features and bug fixes so
  32.     the address space had to be moved.  The address space 0xFF0000 to 0xFFFFFF
  33.     is used by I/O ports on the ST so the existing space could not just be
  34.     increased.
  35.  
  36.     The new address space for TOS 2.06 is 0xE00000 to 0xE3FFFF.  I might add 
  37.     that previous versions of TOS may have been here also but I went from TOS 
  38.     1.0 to TOS 2.06 so I can't say for sure.  Also, instead of putting TOS 
  39.     2.06 into 8 32K byte ROMs it was placed into two 128K byte EPROMs.  One 
  40.     part is called EVEN (supplies the high 8-bits) the other part is called 
  41.     ODD (supplies the low 8-bits).
  42.  
  43.     When the 68000 comes out of the reset state, it reads the first 8 bytes
  44.     in its address space (0,1,2,3,4,5,6,7).  From this data it gets an initial
  45.     value for the supervisor stack pointer and the initial value for the 
  46.     program counter.  What the 520ST and 1040ST do (via the GLUE chip) is to
  47.     remap addresses 0 through 7 to 0xFC0000 to 0xFC0007.  The ROMs are 
  48.     programmed to have the start address in these locations.  TOS 1.0 had the
  49.     value 0xFC0020 while TOS 2.06 has the address 0xE00030.
  50.  
  51.     In 520ST and 1040ST computers, the address space 0xE00000 to 0xEFFFFF is
  52.     not used or decoded.  If a memory cycle is attempted in this range the
  53.     data bus will time out and an bus error will result.
  54.  
  55.     The requirements to get TOS 2.06 to work in a 1040ST are as follows:
  56.  
  57.      1. Decode the address range 0xE00000 to 0xE3FFFF and have the TOS 2.06 
  58.        ROMs drive their data when addressed.    
  59.     2. Generate DTACK for accesses to TOS 2.06 space.  
  60.     3. Map the address range 0->7 to 0xE00000->0xE00007.
  61.     4. Mechanically connect the EPROMs and decoder logic to the motherboard.
  62.     
  63.     The address range can be decoded with the high 4-bits of the address bus
  64.     (A23->A20) to decode the address range 0xE00000 to 0xEFFFFF.  This will
  65.     work fine because nothing else is in the range 0xE40000 to 0xEFFFFF.  
  66.  
  67.     The DTACK signal in the ST is an open collector (wire OR) type bus.  This
  68.     means that any device that wants to assert DTACK may only do so with an
  69.     open collector type interface.  This interface basically is one in which
  70.     the driver can either drive the line to GROUND or not drive the line at all.
  71.     This is different than normal TTL which will drive outputs to GROUND or +5
  72.     (in reality 0.4 to 3.8V).  The DTACK line has a pull up resistor on it 
  73.     which will bring the line high if none of the devices on the bus are 
  74.     driving it low.  The DTACK signal can be derived from the decoder logic 
  75.     but must be buffered with an open collector buffer.
  76.  
  77.     The GLUE chip decodes the 0->7 address range and the range 0xFC0000 to
  78.     0xFCFFFF and asserts the signal ROM2 when either of these two ranges are
  79.     addressed.  The interface can use this fact and OR in the ROM2 signal with
  80.     the 0xE????? space to enable TOS 2.06 ROMs.  This way the boot up sequence
  81.     will be as follows:
  82.  
  83.     1. 68K will read addresses 0->7 which will cause the ROM2 signal from
  84.        GLUE to be asserted.
  85.     2. Data will be read from locations 0xE00000 through 0xE00007.
  86.     3. The 68K will then jump to address 0xE00030 and begin executing code.
  87.     4. At this point the ROM2 signal will never be asserted again and the
  88.        TOS 2.06 decoder logic will do the work.
  89.  
  90.     The TOS 2.06 EPROMs are a super set of the TOS 1.0 parts.  This means that
  91.     nearly all of the pins of the new parts can be plugged into the sockets
  92.     of the old parts.  All of the signals needed for the decoder are available
  93.     off of the GLUE chip.  Therefore the 3 TTL chips will be placed near the
  94.     GLUE chip by glueing them to the motherboard with their pins bent up.  
  95.  
  96.     Before you attempt this upgrade make sure that you have enough room between
  97.     the two ROM sockets to place the 32-pin parts into the sockets.  On the
  98.     Rev C mother board there is no problem.  The TOS 2.06 chips will have pins
  99.     1,2,31 and 32 hanging out over the end of the socket.  Basically if there
  100.     is more than a quarter inch between U4 and U7 you are set.
  101.     
  102.  
  103. Step by Step Instructions:
  104.  
  105.     Please read through the remaining instructions before starting to 
  106.     determine if this upgrade is something you want to attempt.  There are
  107.     two main steps.  The first step is the construction and testing of the
  108.     address space decoder and DTACK logic.  The second step is the insertion
  109.     of the new ROMs into the system.  Before you start you will need a
  110.     disk with a program on it to read address 0xE00000.  This program will
  111.     be used to determine if the decoder and DTACK generator are working.
  112.     Before the circuit is implemented the program will generate a bus error
  113.     and display bombs on the screen.  After the circuit is implemented the
  114.     program should just read the value 0xFFFF if you do a 16-bit read.
  115.  
  116.     main()
  117.     {
  118.        unsigned int *ptr=(unsigned int *)0xE00000;
  119.  
  120.      printf("Value read was 0x%04x\n",*ptr);
  121.     }
  122.  
  123.  
  124.     Step 1 (Implement the Address decoder and DTACK Generator).
  125.  
  126.     The schematic below (I hate ASCII schematics more than you do) shows
  127.     the address decoder and DTACK logic.  The circuit has 10 signals
  128.     that connect directly up to the GLUE chip and 3 signals that connect
  129.     directly to the TOS 2.06 ROMs.  The GLUE signals are on the left and
  130.     the TOS 2.06 EPROM signals are on the right.
  131.  
  132.  
  133.     (19,XX)  ROM2_>--------------------------+    +--------+-----+--------+
  134.                                                  |    | Chip   | +5V | Ground |
  135.                               74F138             |    +--------+-----+--------+
  136.                           +--------------+       |    | 74F138 | 16  |   8    |
  137.       (11,52)    A23>---|a0(1)   q0(15)|o-     |    | 74F08  | 14  |   7    |
  138.       (10,51)    A22>---|a1(2)   q1(14)|o-     |    | 74F244 | 20  |   10   |
  139.       (09,50)    A21>---|a2(3)   q2(13)|o-     |    +--------+-----+--------+
  140.                         |        q3(12)|o-     |  _______
  141.       (12,06)    AS_>--o|e1(4)   q4(11)|o-     |  \      \  74F08
  142.       (08,48)    A20>--o|e2(5)   q5(10)|o-     +--o\a(1)  \ 
  143.       (55,09)   R/W_>---|e3(6)    q6(9)|o-          )  y(3))o--------> CE_
  144.                           |         q7(7)|o---*-----o/b(2)  /
  145.                           +--------------+    |     /______/
  146.                                              |
  147.                                 74F244        |
  148.                            +-------------+    |
  149.                            |        oe(1)|o---+
  150.         (31,10)  DTACK_<---|y0(18)  i0(2)|--+   
  151.                            |             |  |
  152.                            +-------------+  |
  153.                                             |
  154.                                           GROUND
  155.  
  156.                              +5V  
  157.                               |  ____
  158.                               +--|4  \  74F08
  159.                                  |  6 )-------